#include<iostream>
using namespace std;
#define maxsize 100000
typedef struct Sqlist *list;
struct Sqlist {
	int data[maxsize];
	int length;
};

void createSqlist(list &L,int a[],int n);
void printfSqlist(list L);
void longlist(list &L);
int main()
{
	int i,n;
	int a[maxsize];
	list L;
	cin>>n;
	for(i=0;i<n;i++)
	cin>>a[i];
	createSqlist(L,a,n);
	longlist(L);
	printfSqlist(L);
	return 0;
 }
 void createSqlist(list &L,int a[],int n)
 {
 	int i;
 	L=new Sqlist;
 	for(i=0;i<n;i++)
 	L->data[i]=a[i];
 	L->length=n;
 }
 void printfSqlist(list L)
 {
 	int i;
 	for(i=0;i<L->length;i++){
 	cout<< L->data[i];
	 if(i!=(L->length-1))
	 cout<<" ";}
 }
 void longlist(list &L)
 {
 	int i,max=0,count=0,temp,k,j=0;
 	int a[maxsize];
 	if(L->length!=1){
 	for(i=0;i<L->length;i++)
 	{
 		if(L->data[i]<L->data[i+1]&&i!=L->length-1)
 		count++;
 		else 
 		{
 			if(max<count){
 			max=count+1;;
			 temp=i;}
 			count=0;
		 }
	 }
	 if(max!=0){
	 k=temp-max+1;
	 for(j=0;j<max;j++)
	 a[j]=L->data[k++];
	 for(j=0;j<max;j++)
     L->data[j]=a[j];
     L->length=max;}
     else{
     L->data[j]=L->data[0];
	 L->length=1;}
 }
 }
 
